home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-18 | 6.9 KB | 309 lines | [TEXT/PJMM] |
- { Dialog globals unit. }
-
- { Written by Thomas Engel, M.D. }
- { Copyright © 1991 MacTutor. }
-
-
- unit Globals;
-
- interface
-
- const
-
- { Special Characters. }
-
- EnterCh = Chr(3);
- BackSpaceCh = Chr(8);
- TabCh = Chr(9);
- ReturnCh = Chr(13);
-
- { Dialog resource IDs. }
-
- AboutID = 128;
- MessageID = 129;
- StringID = 130;
- YesNoID = 131;
- YesNoCancelID = 132;
- FontSizeID = 133;
- PageMarginsID = 134;
-
- { Dialog item numbers. }
-
- OKButton = 1;
- CancelButton = 2;
- YesButton = 1;
- NoButton = 3;
-
- { Miscellaneous. }
-
- ControlOn = 1;
- ControlOff = 0;
- ControlActive = 0;
- ControlInactive = 255;
- FlashTicks = 10;
- AfterTicks = 2;
- IBeamID = 1;
- WatchID = 4;
-
- type
- IntegerPtr = ^Integer;
- IntegerHandle = ^IntegerPtr;
- LongintPtr = ^Longint;
- LongintHandle = ^LongintPtr;
-
- MeasureOption = (inches, cm, points);
-
- MarginRecord = record
- left, top, right, bottom: Single;
- measure: MeasureOption;
- end;
-
- DialogItemSet = set of 0..255;
-
- TDialog = object
- toolboxDialog: DialogPtr;
- toolboxDPeek: DialogPeek;
- itemCount: Integer;
- defaultItem, cancelItem, defaultText: Integer;
- dismissSet: DialogItemSet;
- procedure IDialog (dialogID: Integer; default, cancel, text: Integer; dismiss: DialogItemSet; centered: Boolean);
- procedure Free;
- procedure Center;
- function Show: Integer;
- procedure Hide;
- function EventFilter (var theEvent: EventRecord; var itemHit: Integer): Boolean;
- procedure FixCursor;
- procedure Command (ch: Char; var itemHit: Integer);
- procedure Hit (var itemHit: Integer);
- procedure Draw;
- procedure DrawDefault;
- procedure DrawBox (itemSet: DialogItemSet; margin, thickness: Integer);
- procedure DrawTitleBox (itemSet: DialogItemSet; margin, thickness: Integer; title: Str255);
- procedure FlashItem (item: Integer);
- function GetText (item: Integer): Str255;
- procedure SetText (item: Integer; text: Str255);
- function GetInteger (item: Integer): Longint;
- procedure SetInteger (item: Integer; value: Longint);
- function GetReal (item: Integer): Extended;
- procedure SetReal (item: Integer; value: Extended; places: Integer);
- function GetControlValue (item: Integer): Integer;
- procedure SetControlValue (item: Integer; value: Integer);
- function GetControlTitle (item: Integer): Str255;
- procedure SetControlTitle (item: Integer; title: Str255);
- function GetRadioItem (radioSet: DialogItemSet): Integer;
- procedure SetRadioItem (radioSet: DialogItemSet; itemSelected: Integer);
- procedure SetIcon (item: Integer; iconID: Integer);
- procedure SetPicture (item: Integer; pictureID: Integer);
- procedure SetUserItem (item: Integer; userProc: ProcPtr);
- end;
-
- TAboutDialog = object(TDialog)
- procedure IAboutDialog;
- function Show: Integer;
- override;
- end;
-
- TMessageDialog = object(TDialog)
- procedure IMessageDialog (message: Str255; iconID: Integer);
- procedure SetMessage (message: Str255);
- end;
-
- TStringDialog = object(TDialog)
- procedure IStringDialog (prompt, default: Str255);
- procedure SetData (prompt, default: Str255);
- procedure GetData (var response: Str255);
- end;
-
- TYesNoDialog = object(TDialog)
- procedure IYesNoDialog (prompt: Str255; default: Integer);
- procedure SetPrompt (prompt: Str255);
- end;
-
- TYesNoCancelDialog = object(TDialog)
- procedure IYesNoCancelDialog (prompt: Str255; default: Integer);
- procedure SetPrompt (prompt: Str255);
- end;
-
- TMarginsDialog = object(TDialog)
- measureSet: DialogItemSet;
- procedure IMarginsDialog (defaultMargins: MarginRecord);
- procedure Draw;
- override;
- procedure Hit (var itemHit: Integer);
- override;
- procedure SetData (newMargins: MarginRecord);
- procedure GetData (var theMargins: MarginRecord);
- end;
-
- TFontSizeDialog = object(TDialog)
- procedure IFontSizeDialog (defaultSize: Integer);
- procedure SetData (fontSize: Integer);
- procedure GetData (var fontSize: Integer);
- end;
-
- var
- IBeam, Watch: CursHandle;
-
-
- procedure ShowAbout;
- procedure ShowMessage (message: Str255);
- function YesNoDialog (prompt: Str255; defaultButton: Integer): Integer;
- function YesNoCancelDialog (prompt: Str255; defaultButton: Integer): Integer;
- function StringDialog (prompt: Str255; var response: Str255): Boolean;
- function FontSizeDialog (var fontSize: Integer): Boolean;
- function MarginsDialog (var margins: MarginRecord): Boolean;
-
-
- implementation
-
-
- procedure ShowAbout;
-
- { Show the application About… dialog. }
-
- var
- theDialog: TAboutDialog;
- theItem: Integer;
-
- begin
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IAboutDialog;
- theItem := theDialog.Show;
- theDialog.Free
- end
- end;
-
-
- procedure ShowMessage (message: Str255);
-
- { Show the message dialog. }
-
- var
- theDialog: TMessageDialog;
- theItem: Integer;
-
- begin
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IMessageDialog(message, 1);
- theItem := theDialog.Show;
- theDialog.Free
- end
- end;
-
-
- function YesNoDialog (prompt: Str255; defaultButton: Integer): Integer;
-
- { Ask a yes or no question. }
-
- var
- theDialog: TYesNoDialog;
-
- begin
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IYesNoDialog(prompt, defaultButton);
- YesNoDialog := theDialog.Show;
- theDialog.Free
- end
- end;
-
-
- function YesNoCancelDialog (prompt: Str255; defaultButton: Integer): Integer;
-
- { Ask a yes, no or cancel question. }
-
- var
- theDialog: TYesNoCancelDialog;
-
- begin
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IYesNoCancelDialog(prompt, defaultButton);
- YesNoCancelDialog := theDialog.Show;
- theDialog.Free
- end
- end;
-
-
- function StringDialog (prompt: Str255; var response: Str255): Boolean;
-
- { Get a string from the user. }
-
- var
- theDialog: TStringDialog;
- theItem: Integer;
-
- begin
- StringDialog := false;
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IStringDialog(prompt, response);
- theItem := theDialog.Show;
- if theItem = OKButton then
- begin
- theDialog.GetData(response);
- StringDialog := true
- end;
- theDialog.Free
- end
- end;
-
-
- function FontSizeDialog (var fontSize: Integer): Boolean;
-
- { Get new font size. }
-
- var
- theDialog: TFontSizeDialog;
- theItem: Integer;
-
- begin
- FontSizeDialog := false;
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IFontSizeDialog(fontSize);
- theItem := theDialog.Show;
- if theItem = OKButton then
- begin
- theDialog.GetData(fontSize);
- FontSizeDialog := true
- end;
- theDialog.Free
- end
- end;
-
-
- function MarginsDialog (var margins: MarginRecord): Boolean;
-
- { Get new page margins. }
-
- var
- theDialog: TMarginsDialog;
- theItem: Integer;
-
- begin
- MarginsDialog := false;
- New(theDialog);
- if theDialog <> nil then
- begin
- theDialog.IMarginsDialog(margins);
- theItem := theDialog.Show;
- if theItem = OKButton then
- begin
- theDialog.GetData(margins);
- MarginsDialog := true
- end;
- theDialog.Free
- end;
- end;
-
-
- end.